/**
 * 导入模块流程
 * */
function require(file) {
  // 1. 相对路径转为绝对路径，定位目标文件
  let absolutePath = path.resolve(__dirname, file);

  // 2.缓存检测  ( 如果缓存中有模块，将停止当前导入，直接使用缓存里面的模块)；
  if (caches[absolutePath]) {
    return caches[absolutePath]
  }

  // 3.读取文件的代码
  let code = fs.readFileSync(absolutePath).toString();

  // 4.包裹为一个函数 然后执行；
  let module = {};
  let exports = module.export = {};
  (
    function (exports, require, module, __filename, __dirname) {
      const text = {
        name: '张黑娃'
      }


      module.export = text;


      // 输出
      console.log(arguments.callee.toString());
    }
  )(exports, require, module, __filename, __dirname);

  // 5.缓存结果
  caches[absolutePath] = module.export;
}


const m = require('./em.js')